查看原文
其他

引介 | 预言机:让智能合约起飞

Doug von Kohorn 以太坊爱好者 2019-01-24


预言机(Oracles)将会是 2018 年最重大的基础设施发明


在一个非常抽象的层面上来说,使用预言机就意味着从链外获得数据。换句话来说,预言机提供区块链与现实世界事件之间的连接。我的想法是,所有真正激动人心的复杂智能合约都要求外部信息——金融衍生品、博彩、稳定币、身份……任何你希望将字面意义上的真实世界中发生的事情包括进来的东西。因此,用电子物事透明而精确地代表现实世界中发生的事情就成了一个挑战。为更好将“预言机”概念化,本文将围绕着为什么数字形式难以表示真实世界建立我们的直观认识。



无所不知的智能合约


一个智能合约是一份自我强制执行的电子协议。常见的例子是自动贩卖机。你投钱进去,然后,你要么(1)退币;要么(2)获得你要的商品。跟智能合约一样,自动贩卖机也是一旦编程好就将永远运行下去的。


智能合约有很多优点。它们是用明确的计算机代码写成的,也是完全独立的。不像法律合约,智能合约完全不需要一个外部权威来下判断——智能合约是在一组相互平等的节点上运行的。没有法官,没有陪审团,也没有调解员。然而,智能合约很难正确编写,而且一旦写到区块链上就是不可更改的,而且它的作用也仅限于虚拟空间。


智能合约是一种做事情的方式,它通过明确地制定参与方以及相关条件来运行。然而你,如果有些信息是关于过去、现在或是尚不知晓的未来的呢?比如昨天 BTC 对 USD 的交换比率(根据价格最高的 5 笔交易)?或是,明天你的航班会不会准时着陆?这就是需要用到预言机的地方。智能合约需要预言机来获得那些在编写合约时无法准确知道的细节信息。


有了预言机以后,我们可以让智能合约变得无所不知。就像一台自动贩卖机,如果预言机说温度下降到凝固点以下,就只提供热巧克力。或是一个航空保险的代理,只要预言机说航班延误了30分钟以上,就自动给付保险赔偿。通过加入与现实世界事件的链接,智能合约可以变得更加智能。



真相是主观的,预言机代表主观性


在科学这一非常狭窄的领域之外,人们是根据他们的世界观来确认事件为真的:


  1. 马萨诸塞州(Massachusetts)的斯普林菲尔德(Springfield)的气温是多少?

  • 要依据哪个气象站的数据呢?

  • 获得了测量值,应当如何取平均值,又如何加以组合?以每天还是以每小时为频度获取测量值?应该取平均数还是中位数?

  • 如果有不一致的意见,某个传感器应当比另一个传感器获得更多的权重吗?

  • 某栋楼是不是被烧毁了?

    • 保险代理的视角:只有根据一个非常精确的标准组合,才能说一栋楼被烧毁了——他们甚至会训练、雇佣一些专业人员来评估火焰是否烧穿了他们的一栋高楼。

    • 普通人的视角:这玩意儿可不就是被烧了么。

  • 昨天谷歌到底怎么说特朗普的?

    • 谷歌基于用户所属的地区、浏览网站的历史、兴趣爱好等,向用户展示不同的搜索结果。

    • 除非有时光机可以回到昨天,没有办法可以回溯验证这些评论,所以我们需要一种方法可以记录搜索结果,跨越怀疑的阴影。


    总的来说,你可以将预言机看成是一个“人”,智能合约可以向 TA 询问对某一事件的主观诠释。而预言机的困难也就在这里:我们如何能够用一种可验证的、一贯的、透明的并且是最小可信的方式解决主观问题?



    预言机的比喻


    1. 一块用于决策的白板


    区块链技术的美妙之处是,它可以迫使每个人都在公开的环境中工作。我们放置了一块白板,我们轮流在白板上写些东西,然后每个人可以看到大家写的东西。打个比方,每个人都可以下载比特币“白板”,生成一个钱包地址,测试钱包的每一种操作。


    无论什么时候,要开一堂课、要解释一个想法以协调工作、或是要详细地讨论一个问题——你可能都要依赖于这块白板来分享思维过程和决策。一个成员将不仅需要提供一个最终的决定,还要在黑板上写出他们的判断过程(或是别的与之类似的东西)。


    当一个智能合约被写在以太坊“白板”上的时候,它对于所有参与方来说都是完全可见的,因此,对于合约将如何执行也就不会有模棱两可的地方——除非重要事件还不为人知。


    在一个智能合约中,关于这些细节的判定是通过预言机来指定的。为了要符合区块链的要求,这项服务必须讲清楚它的工作流程。数据从哪来?数据如何处理?


    在气温的案例中,你也许会通过指定下列细节来判定:某个天气传感器来收集数据、某种平均数方程、以及温度的形式。重点是要尽可能详细地说明决策过程。然后,当事件发生,所有包含在判定过程中的事物都会被预言机服务写到白板上,所有人都可以看到和(用密码学)验证。


    询问预言机关于现实世界的问题的时候,你必须明确你的视角。预言机会反馈以它的步骤,并给出解释。


    2. 信息的公正法庭


    计算机出现很久以前,我们的社会就发明了一种让所有的合约都更加智能的方式:允许用户向一些权威(法庭、国王,……)请求救济,他们会提供终极解决。如果权威是“公正的”,那就没什么理由让争议升级到权威面前。任何知道他们将会失败的人,都不会去尝试。举个例子,中世纪的商业兴起是因为权威的商业法庭的发展而成为可能的——有效的可信的预言机将允许交易者以私人的方式强制执行协议。


    在一个智能合约中,当你制定一个预言机,你是正在选择一个决定你的数据如何解释、它在你的合约环境下意义何在的“法庭”。如果这是一个保险代理的智能合约,那么它的预言机“信息法庭”将根据该代理的定义尝试解决“房子烧毁了吗”这个问题。


    当然,传统的合约系统是非常昂贵的。书面合约要求法庭解释合约并解决争议。这些法庭会要求所有类型的外部强制执行——典狱长、警官、法官以及律师。这种强制需要税收(这暗含了另一组完整的规章)、强制执行的手段以及政府的基础设施。如此贯穿我们社会的方方面面。达到一定规模以后,大量的……就是不可避免的。


    就像在中世纪,这些信息法庭,或者说“预言机”,具有减少大量围绕传统书面合约的强制执行的浪费性工作的潜能。


    3. 保证数字世界与现实世界一致的锁


    要获得一个“结果”,原始数据往往需要根据某个描述世界的模型进行汇总、过滤、组合以及保持一致。链上运行这些流程实在是太贵了,所以他们应该在链下运行并通过一道加密锁保证安全。


    举个例子,假设我们想知道昨天的气温。一个预言机怎么能不用时光机而向其他人证明“昨天的气温是几度”呢?某种程度上,预言机必须返回一个合意的锁,将这些细节用某种不可能被伪造和虚构的方式捆绑在一起。没有单一的方法可以做到这一点,这是一个大家正在研究的领域。


    我们确实知道,该锁在本质上必须是密码学意义上的。这道锁必须尽可能精确地指定每一件会进入最终结果的事物。不论是谁想知道发生了什么以及为什么,他们应该都可以运行并探索他们电脑中预言机判定过程的每一个细节——无需向任何东西,比如来自权威的许可,寻求救济。


    4. 直接承担风险(Skin in the game)的机构


    我们日常生活中的大多数基础设施都潜在地信任一大堆不会为他们自己的失败承担风险的机构。这些机构隐藏风险的方式要么无从发现,要么发现时木已成舟。Equifax 在 2008 年救助评级机构和银行时泄露了 1500 万社保账号和数以千计的其他账号。用户没有救济途径,这些机构安然无恙。


    不幸的是,对于我们老百姓来说,官僚主义是一种结构,其结果可以随意地与其行为分离开来。然而,基于区块链的机构具有潜力,可以通过强制让所有事情都在一个完全透明的、匿名的环境下运行来减少膨胀的官僚主义。因为电子技术降低了信息创造和分散的门槛,有能力证实信息产生于一个可知可信的信息源是非常重要的。


    对于预言机来说,这意味着我们必须让廉价的言论变得昂贵、强制机构承担发布不良信息的风险。直接承担风险意味着你做对和做错时要承担的收益或损失是对等的。今天,预言机可以通过为其声明抵押保证金、随时间推移建立声誉、为数据签名,以及恶劣情形下的第三方众筹等工具组合来尝试做这件事。同样也没有单一正确的方式来建构这些交互作用。就像现实生活中的人际关系一样,预言机将依据不同的商业环境拥有不同的代码伦理。


    直接承担风险的理念是:如果你给出一个选项,并且有人跟随它,你在道德上有义务也暴露在其结果之下。这样会定位风险并让人际联系更强健而不容易失败。将各方都暴露在类似的风险下会让整个系统免于腐败。一个预言机应被预期承担其决断的后果——直接承担风险对公平、商业效率和风险管理来说都是必要的。



    定位我们的未来:系统性人际关系


    比喻不仅仅是我们语言的基础——他们同样也是我们将世界概念化的方式。它们撇除了多余的细节、为我们的思想赋予结构。我希望这些比喻——白板、法庭、锁以及直接承担风险的机构——会在你深入预言机时帮助你的理解。


    我们所有人都在真相上下了注。社会运转在一个假设之上:人们会在生活中抵押自己的声誉(译者注:也就是说声誉是有价值的)。有了这种办法,真相就能战胜谎言——并且,在很大程度上,它确实起作用了。如果它不能起作用,人际关系就会很短暂、商业也会停止。我们所有人都依赖于真相,若你我丧失诚信,则我们自己与整个社会都会遭受损失。有了扩展信任和真相的高级工具,我们会有更美好的未来。



    (感谢 Nassim Nicholas Taleb 提供直接承担风险的比喻。本文的大部分内容都受到了他的最新文章的启发。所有解释中出现的错误都由我自己负责。



    原文链接: https://hackernoon.com/oracles-help-smart-contracts-resolve-subjective-events-d81639d8291c
    作者: Doug von Kohorn
    翻译&校对: 阿剑 & Elisa



    你可能还会喜欢:

    观点 | 去中心化区块链预言机, Part-1
    科普 | 区块链词汇表:从A到Z
    智能合约审计指南



      您可能也对以下帖子感兴趣

      文章有问题?点此查看未经处理的缓存